% 测试脚本
function test_model()
    % 创建模型实例
    model = model_cifar10();
    
    % 1. 创建输入数据 [1, 8, 8, 128]
    % 使用合适的范围，考虑到第一层的输入量化参数
    input = int8(randi([-128, 127], [1, 8, 8, 128]));
    
    fprintf('=== Testing Model Pipeline ===\n\n');
    
    % 打印初始输入信息
    fprintf('Initial input:\n');
    fprintf('  Shape: %s\n', mat2str(size(input)));
    fprintf('  Range: [%d, %d]\n\n', min(input(:)), max(input(:)));
    
    % 2. 全局平均池化
    fprintf('=== Global Average Pooling ===\n');
    gap_output = model.global_average_pooling(input);
    fprintf('GAP output shape: %s\n\n', mat2str(size(gap_output)));
    
    % 3. 全连接层
    fprintf('=== Fully Connected Layer ===\n');
    fc_output = model.fully_connected(gap_output);
    fprintf('FC output shape: %s\n\n', mat2str(size(fc_output)));
    
    % 打印最终输出
    fprintf('=== Final Output ===\n');
    fprintf('Shape: %s\n', mat2str(size(fc_output)));
    fprintf('Range: [%d, %d]\n', min(fc_output(:)), max(fc_output(:)));
    
    % 显示预测结果
    [~, pred_class] = max(fc_output);
    fprintf('Predicted class: %d\n', pred_class);
end 